package com.szy.douyou_article.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.szy.douyou_article.config.ResultDTO;
import com.szy.douyou_article.dao.Article;
import com.szy.douyou_article.dao.State;
import com.szy.douyou_article.dao.req.ArticleReq;

import java.util.List;

/**
 * @author sunziyan
 * @date 2022/3/1
 */
public interface ArticleService {
    /**
     * 分页条件查询帖子
     * @param articleReq
     * @return
     */
    ResultDTO<Page<Article>> queryAllArticle(ArticleReq articleReq);

    /**
     * 添加一条帖子
     * @param article
     * @return
     */
    ResultDTO addOneArticle(Article article);


    /**
     * 查询一条帖子
     * @param articleId
     * @return
     */
    ResultDTO<Article> queryOneArticle(Long articleId);

    /**
     * 修改一条帖子
     * @param article
     * @return
     */
    ResultDTO updateOneArticle(Article article);

    /**
     * 删除帖子及对应分类表记录
     * @param articleId
     * @return
     */
    ResultDTO deleteOneArticle(Long articleId);

    /**
     * 浏览数加1
     * @param articleId
     * @return
     */
    ResultDTO addArticleViews(Long articleId);

    /**
     * 获取该文章好评差评
     * @param articleId
     * @return
     */
    ResultDTO getArticleAllState(Long articleId);

    /**
     * 获取我在该文章的好评差评
     * @param articleId
     * @param userId
     * @return
     */
    ResultDTO getMyArticleState(Long articleId,Long userId);

    ResultDTO changeArticleState(State state);

    ResultDTO createArticleState(State state);

}
